
package com.insigma.business.qrcode.soldier.dao;



import com.insigma.business.qrcode.soldier.dto.PlacementPositionInfoBSearcher;
import com.insigma.business.qrcode.soldier.entity.PlacementPositionInfoDO;
import org.apache.ibatis.annotations.Param;

import java.util.List;


public interface PlacementPositionInfoDao {

    
    List<PlacementPositionInfoDO> search(final PlacementPositionInfoBSearcher innerSearcher);

    
    PlacementPositionInfoDO get(final String id);

    
    Integer insert(final PlacementPositionInfoDO placementPositionInfoDO);

    
    Integer update(final PlacementPositionInfoDO placementPositionInfoDO);

    
    Integer delete(@Param("id") final String id,
                   @Param("modifierType") final String modifierType,
                   @Param("modifierId") final String modifierId);

    List<PlacementPositionInfoDO> listByBatchId(String batchId);

    Integer publishAllPosition(@Param("batchId")String batchId, @Param("modifierId")String modifierId, @Param("modifierType")String modifierType);

    PlacementPositionInfoDO getByUnitNameAndNameAndType(@Param("unitName")String unitName, @Param("name")String name, @Param("type")String type);

    Integer addQuota(@Param("id")String id, @Param("oldQuota")Integer oldQuota, @Param("quota")Integer quota);

    List<PlacementPositionInfoDO> listByIdCardNoAndBatchType(@Param("idCardNo")String idCardNo, @Param("type")String type);

    PlacementPositionInfoDO getByBatchIdAndUnitAndName(@Param("currentBatchId")String currentBatchId, @Param("unitId")String unitId, @Param("name")String name);

    PlacementPositionInfoDO getByCode(String code);
}
